﻿#ifndef IniConfig_H
#define IniConfig_H
#include <QSettings>
#include <QHash>
#include "QCommonWidgets_global.h"


QCOMMWIDGETS_BEGIN_NAMESPACE

class QCOMMONWIDGETS_EXPORT IniConfig
{

public:

    /**
     * 返回IniConfig类指针
     *
     * @param -
     * @note -
     * @return -
     */
    static IniConfig* getIniConfigPtr(QString path) ;

    /**
     * 初始化构造函数
     *
     * @param -
     * @note -
     * @return -
     */
    IniConfig(QString path);

    /**
     * 初始化
     *
     * @param -
     * @note -
     * @return -
     */
    void initINI();

    /**
     * 查找键值
     *
     * @param - key: 需要查找的键。 如: UpWidget/widget_h
     * @note -
     * @return - QString
     */
    QString findvalueString(QString key);

    /**
     * 查找键值
     *
     * @param - key: 需要查找的键。 如: UpWidget/widget_h
     * @note -
     * @return - int
     */
    int findvalueInt(QString key);

    /**
     * 查找键值
     *
     * @param - key: 需要查找的键。 如: UpWidget/widget_h
     * @note -
     * @return - double
     */
    double findvalueDouble(QString key);

private:

    QSettings*              IniConfigFile;  // 已经打开的配置文件

    QHash <QString,QString> AllConfig;      // 所有键和值

private:
    static IniConfig* m_instance;           // 静态 this 指针

};

QCOMMWIDGETS_END_NAMESPACE

#endif // INICONFIG_H
